Add isolated command execution - #12
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Why
A transcript command that enabled
set -euo pipefailcould terminate the persistent Bash shell after a failure before Threadline emitted its completion marker. Treating every command as isolated would prevent that failure but would also break persistentcd, exports, aliases, and functions.The explicit mode keeps both contracts honest. An isolated failure reports the child status through the transcript while the outer shell remains available, including when the outer shell already has
errexitenabled.User impact
Script-like strict-mode commands can fail without dropping the SSH session when run isolated. Persistent shell behavior remains available when state changes are intentional.
Validation
./gradlew --no-daemon test lint assembleDebug assembleRelease